package com.ray.depot.enums;

import com.xiaoleilu.hutool.util.StrUtil;

/**
 * 出入库单状态
 * 
 * @author ray
 *
 */
public enum InOutStatus {
	draft("draft", "草稿"),
	ToSubmit("ToSubmit", "待提交"),
	ToApply("ToApply", "待审核"),
	ApplyFail("ApplyFail","审核不同意"),
	ApplyCancel("ApplyCancel","审批取消"),
	ToInOut("ToInOut", "待出入库"), 
	InOutSuccess("InOutSuccess", "已出入库");
	/** 类型 **/
	private String type;
	/** 类型名称 **/
	private String name;

	private InOutStatus(String type, String name) {
		this.type = type;
		this.name = name;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	/**
	 * 是否可以编辑
	 * @param status
	 * @return
	 */
	public static boolean canEdit(String status){
		if(StrUtil.equals(status, draft.type)){//草稿
			return true;
		}else if(StrUtil.equals(status, ToSubmit.type)){//带提交
			return true;
		}else if(StrUtil.equals(status, ApplyFail.type)){//审批不同意
			return true;
		}else if(StrUtil.equals(status, ApplyCancel.type)){//审批取消
			return true;
		}
		return false;
	}
	
	/**
	 * 是否可以删除
	 * @param status
	 * @return
	 */
	public static boolean canDelete(String status){
		if(StrUtil.equals(status, draft.type)){//草稿
			return true;
		}else if(StrUtil.equals(status, ToSubmit.type)){//待递交
			return true;
		}else if(StrUtil.equals(status, ApplyCancel.type)){//审批不取消
			return true;
		}
		return false;
	}
	
	/**
	 * 是否可以提交审核
	 * @param status
	 * @return
	 */
	public static boolean canSubmitApply(String status){
		if(StrUtil.equals(status, ToSubmit.type)){//待提交
			return true;
		}
		return false;
	}
	
	/**
	 * 是否可以出入库
	 * @param status
	 * @return
	 */
	public static boolean canInOut(String status){
		if(StrUtil.equals(status, ToInOut.type)){//待出入库
			return true;
		}
		return false;
	}
}
